home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 3 / Gekikoh Dennoh Club Vol. 3 (Japan).7z / Gekikoh Dennoh Club Vol. 3 (Japan) (Track 1).bin / fsw3 / ksh / ksh.doc < prev    next >
Text File  |  1998-02-16  |  49KB  |  1,321 lines

  1.  
  2.  
  3.  
  4. KSH(1)                                                     KSH(1)
  5.  
  6.  
  7. NAME
  8.        ksh - Bourne / Korn Shell (Public Domain)
  9.  
  10. SYNOPSIS
  11.        ksh [-st] [-c command] [file [argument ...]]
  12.  
  13. INTRODUCTION
  14.        This  document  only  summarizes  the  System V, release 2
  15.        shell features.  All of the System V features  except  for
  16.        ``restricted  mode''  are  implemented.  See also the BUGS
  17.        section.
  18.  
  19.        Features of the Korn shell are described in  more  detail.
  20.        Only  a  subset  of  the Korn shell features are currently
  21.        implemented.
  22.  
  23. DESCRIPTION
  24.    Command syntax
  25.        The ``#'' character begins a one-line comment, unless  the
  26.        ``#''  occurs  inside  a  word.   The tokens ``;'', ``|'',
  27.        ``&'', ``;;'', ``||'', ``&&'', ``('', and ``)''  stand  by
  28.        themselves.   A  word  is  a  sequence  of  any other non-
  29.        whitespace  characters,  which  may  also  contain  quoted
  30.        strings  (quote  character  are  ``''', ``"'', ```'', or a
  31.        matching ``${ }''  or  ``$(  )''  pair).   A  name  is  an
  32.        unquoted  word  made up of letters, digits, or ``_''.  Any
  33.        number of whitespace characters (space and tab) may  sepa-
  34.        rate words and tokens.
  35.  
  36.        In  the  following  syntax, { ... }? indicates an optional
  37.        thing, { ... }* indicates zero or more repetitions, {  ...
  38.        | ... } indicates alternatives.
  39.  
  40.        statement:
  41.               ( list )
  42.               { list ; }
  43.               for name { in { word }* }? do list ; done
  44.               select name { in { word }* }? do list ; done
  45.               { while | until } list ; do list ; done
  46.               if  list ; then list ; { elif list ; then list ; }*
  47.               { else list ; }?fi
  48.               case name in { ( word { | word } ) list ;; }* esac
  49.               function name { list ; }
  50.               name () { list ; }
  51.               time pipe
  52.               The opening parenthesis of the pattern is optional.
  53.               Redirection  may occur at the beginning or end of a
  54.               statement.
  55.  
  56.        command:
  57.               { name=word }* { word }*
  58.               Redirection may occur anywhere in a command.
  59.  
  60.        list:
  61.  
  62.  
  63.  
  64.                             July 1992                           1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. KSH(1)                                                     KSH(1)
  71.  
  72.  
  73.               cond
  74.               cond ; list
  75.               cond & list
  76.  
  77.        cond:
  78.               pipe
  79.               pipe && cond
  80.               pipe || cond
  81.  
  82.        pipe:
  83.               statement { | statement }*
  84.  
  85.    The select statement
  86.        The select statement provides an automatic method of  pre-
  87.        senting  the  user  with  a  menu  selection  from several
  88.        options.  The words given in the list are printed on stan-
  89.        dard  error, each preceded by a number.  Typing the number
  90.        on standard input sets the variable name to the word  that
  91.        was  selected.   The data that was typed is preserved in a
  92.        variable called REPLY.  The contents of the loop are  then
  93.        executed  using  the  selected value.  A new prompt PS3 is
  94.        used to indicate that a  number  should  be  typed  in  to
  95.        choose a value from the menu.
  96.  
  97.        Menus  will continue to be presented until an interrupt is
  98.        received or end-of-file is typed on input.
  99.  
  100.    Alias expansion
  101.        Alias expansion occurs when the first word of a  statement
  102.        is  a  defined  alias,  except  when that alias is already
  103.        being expanded.  It also occurs after the expansion of  an
  104.        alias whose definition ends with a space.
  105.  
  106.    Alternation
  107.        Csh provides a filename expansion method known as alterna-
  108.        tion.  This has been added into this version of ksh.  When
  109.        performing filename substitution, you can get the shell to
  110.        create  a  set  of   strings   for   you.   For   example,
  111.        `exampl{a,b,c,d,e}' will expand to ``exampla examplb exam-
  112.        plc exampld example''.  A comma separated set  of  strings
  113.        in  curly  braces  will  be expanded into a set of strings
  114.        that are passed into the command.   The  strings  are  not
  115.        sorted.
  116.  
  117.    Shell variables
  118.        The  following  standard special variables exist: !, #, $,
  119.        -, ?.
  120.  
  121.        _      In interactive use this parameter  is  set  to  the
  122.               last  word of the previous command.  When a command
  123.               is executed this parameter is set to the full  path
  124.               of  the  command  and placed in the environment for
  125.               the command.  See also MAILPATH.
  126.  
  127.  
  128.  
  129.  
  130.                             July 1992                           2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. KSH(1)                                                     KSH(1)
  137.  
  138.  
  139.        CDPATH The search path for the cd command.
  140.  
  141.        ENV    If this variable is set at start-up (after any pro-
  142.               file  files  are  executed),  the expanded value is
  143.               used as shell start-up file.  It typically contains
  144.               function and alias definitions.
  145.  
  146.        FCEDIT The  editor used by the fc command.  During startup
  147.               the shell checks the value of  FCEDIT,  EDITOR  and
  148.               finally  VISUAL  to  try and determine what command
  149.               line edit mode to  use.   Note  that  this  is  not
  150.               strictly ksh compatible behaviour.
  151.  
  152.        COLUMNS
  153.               The width to use for the commandline editing (emacs
  154.               mode only).
  155.  
  156.        HISTFILE
  157.               The name of the file used  to  store  history.   If
  158.               defined,  history  will be loaded from this file on
  159.               startup.  Also, several invocations  of  the  shell
  160.               running  on  the same machine will share history if
  161.               their HISTFILE variables  all  point  at  the  same
  162.               file.
  163.  
  164.        HISTSIZE
  165.               The number of commands normally stored for history,
  166.               default 128.
  167.  
  168.        HOME   The default directory for the cd command.
  169.  
  170.        IFS    Internal field separator, used during  substitution
  171.               and the read command.
  172.  
  173.        MAIL   If set, the user will be informed of the arrival of
  174.               mail in the named file.  This variable  is  ignored
  175.               if the MAILPATH variable is set.
  176.  
  177.        MAILCHECK
  178.               How  often,  in  seconds,  the shell will check for
  179.               mail in the file(s) specified by MAIL or  MAILPATH.
  180.               If  0,  the  shell  checks before each prompt.  The
  181.               default is 600 seconds.
  182.  
  183.        MAILPATH
  184.               A list of files to be checked for mail.   The  list
  185.               is  colon  separated, and each file may be followed
  186.               by a ? and a message to be printed if new mail  has
  187.               arrived.   Command  and  parameter  substitution is
  188.               performed on the message, and the parameter  $_  is
  189.               set  to  the name of the file.  The default message
  190.               is ``you have mail in $_''.
  191.  
  192.        PATH   The search path for  executable  commands  and  .'d
  193.  
  194.  
  195.  
  196.                             July 1992                           3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. KSH(1)                                                     KSH(1)
  203.  
  204.  
  205.               files.
  206.  
  207.        PPID   The process number of the parent of the shell.
  208.  
  209.        PS1 PS2
  210.               PS1  is  the primary prompt for interactive shells.
  211.               Dollar substitution is performed, and ! is replaced
  212.               with the command number (see fc).
  213.  
  214.        PWD OLDPWD
  215.               The current and previous working directories.
  216.  
  217.        RANDOM A  random integer.  The random number generator may
  218.               be seeded by assigning an  integer  value  to  this
  219.               variable.
  220.  
  221.        SECONDS
  222.               The  number  of  seconds  since the shell timer was
  223.               started or reset.  Assigning an  integer  value  to
  224.               this variable resets the timer.
  225.  
  226.    Substitution
  227.        In addition to the System Vr2 substitutions, the following
  228.        are available.
  229.  
  230.        $(command)
  231.               Like `command`, but no escapes are recognized.
  232.  
  233.        $(<file)
  234.               Equivalent to $(cat file), but without forking.
  235.  
  236.        ${#var}
  237.               The length of the string value of var, or the  num-
  238.               ber of arguments if var is * or @.
  239.  
  240.        ${var#pattern} ${var##pattern}
  241.               If  pattern  matches  the beginning of the value of
  242.               var, the matched text is deleted from the result of
  243.               substitution.   A  single # results in the shortest
  244.               match, two #'s results in the longest match.
  245.  
  246.        ${var%pattern} ${var%%pattern}
  247.               Like # substitution, but deleting from the  end  of
  248.               the value.
  249.  
  250.    Expressions
  251.        Expressions  can  be used with the let command, as numeric
  252.        arguments to the test command, and  as  the  value  of  an
  253.        assignment to an integer variable.
  254.  
  255.        Expression  may contain alpha-numeric variable identifiers
  256.        and integer constants and may be combined with the follow-
  257.        ing operators:
  258.  
  259.  
  260.  
  261.  
  262.                             July 1992                           4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. KSH(1)                                                     KSH(1)
  269.  
  270.  
  271.        == != <= < > >= + - * / % ! ( )
  272.  
  273.    Command execution
  274.        After evaluation of keyword assignments and arguments, the
  275.        type of command is determined.  A command  may  execute  a
  276.        shell function, a shell built-in, or an executable file.
  277.  
  278.        Any  keyword  assignments  are then performed according to
  279.        the type of command.  In function  calls  assignments  are
  280.        local  to  the function.  Assignments in built-in commands
  281.        marked with a   persist,  otherwise  they  are  temporary.
  282.        Assignments  in  executable  commands  are exported to the
  283.        sub-process executing the command.
  284.  
  285.        Even on systems where the exec() family does  not  support
  286.        #!   notation  for  scripts, ksh can be configured to fake
  287.        it.
  288.  
  289.        There are several built-in commands.
  290.  
  291.        :      Only expansion and assignment are performed.   This
  292.               is the default if a command has no arguments.
  293.  
  294.        . file Execute  the commands in file without forking.  The
  295.               file is  searched  in  the  directories  of  $PATH.
  296.               Passing arguments is not implemented.
  297.  
  298.        alias [name=value ...]
  299.               Without  arguments,  alias  lists  all  aliases and
  300.               their values.  For any name without  a  value,  its
  301.               value  is listed.  Any name with a value defines an
  302.               alias, see "Alias Expansion" above.  Korn's tracked
  303.               aliases  are  not implemented, but System V command
  304.               hashing is (see "hash").
  305.  
  306.        alias -d [name=value ...]
  307.               Directory aliases for tilde expansion, eg.
  308.               alias -d fac=/usr/local/usr/facilities
  309.               cd ~fac/bin
  310.  
  311.        break [levels]
  312.  
  313.        builtin command arg ...
  314.               Command is executed as a built-in command.
  315.  
  316.        cd [path]
  317.               Set the working directory to path.  If the  parame-
  318.               ter CDPATH is set, it lists the search path for the
  319.               directory containing path.  A null path  means  the
  320.               current  directory.   If  path is missing, the home
  321.               directory ($HOME) is used.  If path is -, the  pre-
  322.               vious  working  directory  is used.  If path is ..,
  323.               the shell changes directory to  the  parent  direc-
  324.               tory, as determined from the value of PWD.  The PWD
  325.  
  326.  
  327.  
  328.                             July 1992                           5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. KSH(1)                                                     KSH(1)
  335.  
  336.  
  337.               and OLDPWD variables are reset.
  338.  
  339.        cd old new
  340.               The string new is substituted for old in  the  cur-
  341.               rent directory, and the shell attempts to change to
  342.               the new directory.
  343.  
  344.        continue [levels]
  345.  
  346.        echo ...
  347.               Echo is replaced with the alias echo='print' in the
  348.               Korn shell.
  349.  
  350.        eval command ...
  351.  
  352.        exec command arg ...
  353.               The executable command is executed without forking.
  354.               If no arguments are given, any  IO  redirection  is
  355.               permanent.
  356.  
  357.        exit [status]
  358.  
  359.        fc [-e editor] [-lnr] [first [last]]
  360.               First  and  last  select commands.  Commands can be
  361.               selected by history number, or a string  specifying
  362.               the  most recent command starting with that string.
  363.               The -l option lists the command on stdout,  and  -n
  364.               inhibits  the  default  command  numbers.   The  -r
  365.               option reverses the order of the list.  Without -l,
  366.               the  selected  commands can be edited by the editor
  367.               specified with the -e option, or if no -e is speci-
  368.               fied,  the  $FCEDIT  editor,  then  executed by the
  369.               shell.
  370.  
  371.        fc -e - [-g] [old=new] [command]
  372.               Re-execute the selected command (the previous  com-
  373.               mand by default) after performing the optional sub-
  374.               stitution of old with new.  If -g is specified, all
  375.               occurrences  of  old  are  replaced with new.  This
  376.               command is usually  accessed  with  the  predefined
  377.               alias r=``fc -e -''.
  378.  
  379.        getopts
  380.               See the attached manual page.
  381.  
  382.        hash [-r] [name ...]
  383.               Without  arguments,  any  hashed executable command
  384.               pathnames are  listed.   The  -r  flag  causes  all
  385.               hashed  commands  to  be  removed.   Each  name  is
  386.               searched as if it were a command name and added  to
  387.               the hash table if it is an executable command.
  388.  
  389.        kill [-signal] process ...
  390.               Send  a  signal  (TERM  by  default)  to  the named
  391.  
  392.  
  393.  
  394.                             July 1992                           6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. KSH(1)                                                     KSH(1)
  401.  
  402.  
  403.               process.  The signal may be specified as  a  number
  404.               or  a  mnemonic from <signal.h> with the SIG prefix
  405.               removed.
  406.  
  407.        let [expression ...]
  408.               Each expression  is  evaluated,  see  "Expressions"
  409.               above.   A  zero  status  is  returned  if the last
  410.               expression evaluates to a non-zero value, otherwise
  411.               a  non-zero  status is returned.  Since may expres-
  412.               sions need to be quoted, (( expr  ))  is  syntactic
  413.               sugar for let "expr".
  414.  
  415.        print [-nreun] [argument ...]
  416.               Print  prints its arguments on the standard output,
  417.               separated by spaces, and terminated with a newline.
  418.               The -n option eliminates the newline.
  419.  
  420.               By  default,  certain  C  escapes  are  translated.
  421.               These include \b, \f, \n, \r, \t, \v, and  \###  (#
  422.               is  an  octal  digit).   \c is equivalent to the -n
  423.               option.  This expansion may be inhibitted with  the
  424.               -r  option, and may be re-enabled with the addition
  425.               of the -e option.
  426.  
  427.        read [-run] name ...
  428.               The  first  variable  name  may  be  of  the   form
  429.               name?prompt.
  430.  
  431.        readonly [name ...]
  432.  
  433.        return [status]
  434.  
  435.        set [+-[a-z]] [+-o keyword] ...
  436.               Set (-) or clear (+) a shell option:
  437.                    -a   allexport           all  new variable are
  438.               created with export attribute
  439.                    -e   errexit             exit on non-zero sta-
  440.               tus [incorrect]
  441.                         bgnice              background  jobs  are
  442.               run with lower priority
  443.  
  444.                         emacs               BRL  emacs-like  line
  445.               editing
  446.                         ignoreeof           shell  will  not exit
  447.               of EOF, must use exit
  448.                    -k   keyword             variable  assignments
  449.               are recognized anywhere in command
  450.                         markdirs            [not implemented]
  451.                    -m   monitor             job  control  enabled
  452.               (default for interactive shell)
  453.                    -n   noexec              compile input but  do
  454.               not execute (ignored if interactive)
  455.                    -f   noglob              don't   expand  file-
  456.               names
  457.  
  458.  
  459.  
  460.                             July 1992                           7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. KSH(1)                                                     KSH(1)
  467.  
  468.  
  469.                    -u   nounset             dollar  expansion  of
  470.               unset variables is an error
  471.                    -v   verbose             echo  shell  commands
  472.               on stdout when compiling
  473.                    -h   trackall            add command pathnames
  474.               to hash table
  475.                         vi                  VI-like line editing
  476.                    -x   xtrace              echo  simple commands
  477.               while executing
  478.  
  479.        set [--] arg ...
  480.               Set shell arguments.
  481.  
  482.        shift [number]
  483.  
  484.        test   See the attached manual page.
  485.  
  486.        times
  487.  
  488.        trap [handler] [signal ...]
  489.  
  490.        typeset [+-irtx] [name[=value] ...]
  491.               If no arguments are given, lists all variables  and
  492.               their attributes.
  493.  
  494.        If  options  but  no names are given, lists variables with
  495.        specified attributes, and their values if unless ``+''  is
  496.        used.
  497.  
  498.        If  names are given, set the attributes of the named vari-
  499.        ables.  Variables may also be assigned a value.   If  used
  500.        inside  a  function, the created variable are local to the
  501.        function.
  502.  
  503.        The attributes are as follows.  -iThe variable's value  is
  504.        stored as an integer.
  505.        -xThe variable is exported to the environment.
  506.        -rThe  variable is read-only cannot be reassigned a value.
  507.        -tTrace (not implemented).
  508.        -fList functions instead of variable.
  509.  
  510.        ulimit [ -<OZ> ] [ n ]
  511.  
  512.               -c   Impose a size limit of n blocks on the size of
  513.                    core dumps.
  514.  
  515.               -d   Impose a size limit of n blocks on the size of
  516.                    the data area.
  517.  
  518.               -f   Impose a size limit of n blocks on files writ-
  519.                    ten  by  the  shell  and  its  child processes
  520.                    (files of any size may be read).
  521.  
  522.               -m   Impose a soft limit of n blocks on the size of
  523.  
  524.  
  525.  
  526.                             July 1992                           8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. KSH(1)                                                     KSH(1)
  533.  
  534.  
  535.                    physical memory.
  536.  
  537.               -t   Impose a time limit of n seconds to be used by
  538.                    each process.
  539.  
  540.               If no option is given, -f  is  assumed.   If  n  is
  541.               omitted,  the  current limit is printed.  As far as
  542.               ulimit is concerned, a ``block'' is 512 bytes.
  543.  
  544.               You may lower your own resource limit, but  only  a
  545.               super-user (see su(1M)) can raise a limit.
  546.  
  547.        umask [value]
  548.  
  549.        unalias name ...
  550.               The aliases for the given names are removed.
  551.  
  552.        unset [-f] name ...
  553.  
  554.        wait [process-id]
  555.  
  556.        whence [-v] name ...
  557.               For  each name, the type of command is listed.  The
  558.               -v flag causes function  and  alias  values  to  be
  559.               listed.
  560.  
  561.    Job Control
  562.        Job  control  features are enabled by the -m or -o monitor
  563.        flags.  When job control is enabled, and the  system  sup-
  564.        ports job control, background commands and foreground com-
  565.        mands that have been stopped (usually by a SIGTSTP  signal
  566.        generated  by typing ^Z) are placed into separate individ-
  567.        ual process groups.  The following commands  are  used  to
  568.        manipulate these process groups:
  569.  
  570.        jobs           Display  information  about  the controlled
  571.                       jobs.  The job number is given preceeded by
  572.                       a  percent sign, followed by a plus sign if
  573.                       it is the ``current job'', or  by  a  minus
  574.                       sign  if  it  is the ``previous job'', then
  575.                       the process group number for the job,  then
  576.                       the command.
  577.        kill [-signal] job ...
  578.                       Send  a  signal  (TERM  by  default) to the
  579.                       named job process group.
  580.        fg [ job ]     Resume the stopped foreground  job  in  the
  581.                       foreground.   If the process group n is not
  582.                       specified  then  the  ``current  job''   is
  583.                       resumed.
  584.        bg [ job ]     Resume  the  stopped  foreground job in the
  585.                       background.  If the process group n is  not
  586.                       specified   then  the  ``current  job''  is
  587.                       resumed.
  588.  
  589.  
  590.  
  591.  
  592.                             July 1992                           9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. KSH(1)                                                     KSH(1)
  599.  
  600.  
  601.        The fg, bg, kill, and wait commands may refer to jobs with
  602.        the  following ``percent'' sequences.  The percent sign is
  603.        optional with the fg and bg commands.
  604.  
  605.        %+(%-)     If  there  is  a  ``current  job''  (``previous
  606.                   job''), then that job is selected.
  607.        %n         If the specified job number is one of the known
  608.                   jobs, then that job is selected.
  609.        %string    If the string matches the  initial  part  of  a
  610.                   job's command, then that job is selected.
  611.        %?string   As  above, but the string may match any portion
  612.                   of the command.
  613.  
  614.        If the system does not support job control,  monitor  mode
  615.        enables  job  reporting.  The jobs and kill commands func-
  616.        tions as above, and you will be informed  when  background
  617.        jobs complete.  Fg and bg are not available.
  618.  
  619.    Interactive Input Line Editing
  620.        When the emacs option is set, interactive input line edit-
  621.        ing is enabled.  This mode is slightly different from  the
  622.        emacs  mode  in  AT&T's  KornShell.   In this mode various
  623.        editing commands (typically bound to one or  more  control
  624.        characters)  cause immediate actions without waiting for a
  625.        new-line.  Several editing commands are bound to  particu-
  626.        lar  control  characters  when the shell is invoked; these
  627.        bindings can be changed using the following commands:
  628.  
  629.        bind                The current bindings are listed.
  630.        bind [ string ] = [ editing-command ]
  631.                            The specified editing command is bound
  632.                            to the given string, which should con-
  633.                            sist of a control character (which may
  634.                            be  written  using  ``caret notation''
  635.                            ^x), optionally preceded by one of the
  636.                            two  prefix  characters.  Future input
  637.                            of the string will cause  the  editing
  638.                            command to be immediately invoked.
  639.                            Note  that  although  only  two prefix
  640.                            characters (normal  ESC  and  ^X)  are
  641.                            supported,     some    multi-character
  642.                            sequences can be supported:
  643.                            bind '^[['=prefix-2
  644.                            bind '^XA'=up-history
  645.                            bind '^XB'=down-history
  646.                            bind '^XC'=forward-char
  647.                            bind '^XD'=backward-char
  648.                            will bind the arrow keys  on  an  ANSI
  649.                            terminal,  or  xterm.   Of course some
  650.                            escape sequences won't work out  quite
  651.                            that nicely.
  652.        bind -m [ string ] = [ substitute ]
  653.                            The specified input string will after-
  654.                            wards be immediately replaced  by  the
  655.  
  656.  
  657.  
  658.                             July 1992                          10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. KSH(1)                                                     KSH(1)
  665.  
  666.  
  667.                            given  substitute  string,  which  may
  668.                            contain editing commands.
  669.  
  670.        The following editing commands are  available;  first  the
  671.        command  name is given followed by its default binding (if
  672.        any) using caret notation (note that the ASCII ESC charac-
  673.        ter is written as ^[), then the editing function performed
  674.        is described.  Note that editing command  names  are  used
  675.        only  with  the  bind  command.  Furthermore, many editing
  676.        commands are useful only on terminals with a visible  cur-
  677.        sor.   The default bindings were chosen to resemble corre-
  678.        sponding EMACS key bindings.   The  users  tty  characters
  679.        (eg. erase) are bound to reasonable substitutes.
  680.  
  681.        abort  ^G                       Useful  as a response to a
  682.                                        request  for   a   search-
  683.                                        history  pattern  in order
  684.                                        to abort the search.
  685.        auto-insert                     Simply causes the  charac-
  686.                                        ter  to  appear as literal
  687.                                        input.    (Most   ordinary
  688.                                        characters  are  bound  to
  689.                                        this.)
  690.        backward-char  ^B               Moves the cursor  backward
  691.                                        one character.
  692.        backward-word  ^[b              Moves  the cursor backward
  693.                                        to  the  beginning  of   a
  694.                                        word.
  695.        beginning-of-line  ^A           Moves  the  cursor  to the
  696.                                        beginning  of  the   input
  697.                                        line   (after  the  prompt
  698.                                        string).
  699.        complete  ^[^[                  Automatically completes as
  700.                                        much  as  is unique of the
  701.                                        hashed command name or the
  702.                                        file  name  containing the
  703.                                        cursor.   If  the   entire
  704.                                        remaining  command or file
  705.                                        name is unique a space  is
  706.                                        printed  after its comple-
  707.                                        tion,  unless  it   is   a
  708.                                        directory  name  in  which
  709.                                        case / is postpended.   If
  710.                                        there is no hashed command
  711.                                        or file name with the cur-
  712.                                        rent  partial  word as its
  713.                                        prefix, a  bell  character
  714.                                        is output (usually causing
  715.                                        a ``beep'').
  716.        complete-command  ^X^[          Automatically completes as
  717.                                        much  as  is unique of the
  718.                                        hashed command name having
  719.                                        the partial word up to the
  720.                                        cursor as its  prefix,  as
  721.  
  722.  
  723.  
  724.                             July 1992                          11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. KSH(1)                                                     KSH(1)
  731.  
  732.  
  733.                                        in  the  complete  command
  734.                                        described   above.    Only
  735.                                        command and function names
  736.                                        seen since the  last  hash
  737.                                        -r  command  are available
  738.                                        for completion;  the  hash
  739.                                        command  may  be  used  to
  740.                                        register additional names.
  741.        complete-file  ^[^X             Automatically completes as
  742.                                        much as is unique  of  the
  743.                                        file  name having the par-
  744.                                        tial word up to the cursor
  745.                                        as  its  prefix, as in the
  746.                                        complete command described
  747.                                        above.
  748.        copy-last-arg  ^[_              The  last word of the pre-
  749.                                        vious command is  inserted
  750.                                        at  the  cursor.  Note I/O
  751.                                        redirections do not  count
  752.                                        as words of the command.
  753.        delete-char-backward  ERASE     Deletes    the   character
  754.                                        before the cursor.
  755.        delete-char-forward             Deletes   the    character
  756.                                        after the cursor.
  757.        delete-word-backward  ^[ERASE   Deletes  characters before
  758.                                        the  cursor  back  to  the
  759.                                        beginning of a word.
  760.        delete-word-forward  ^[d        Deletes  characters  after
  761.                                        the cursor up to  the  end
  762.                                        of a word.
  763.        down-history  ^N                Scrolls the history buffer
  764.                                        forward one line  (later).
  765.                                        Each input line originally
  766.                                        starts just after the last
  767.                                        entry   in   the   history
  768.                                        buffer, so down-history is
  769.                                        not  useful  until  either
  770.                                        search-history   or    up-
  771.                                        history   has   been  per-
  772.                                        formed.
  773.        end-of-line  ^E                 Moves the  cursor  to  the
  774.                                        end of the input line.
  775.        eot  ^_                         Acts  as  an  end-of-file;
  776.                                        this  is  useful   because
  777.                                        edit-mode  input  disables
  778.                                        normal   terminal    input
  779.                                        canonicalization.
  780.        eot-or-delete  ^D               Acts  as eot if alone on a
  781.                                        line;  otherwise  acts  as
  782.                                        delete-char-forward.
  783.        exchange-point-and-mark  ^X^X   Places  the  cursor  where
  784.                                        the mark is, and sets  the
  785.                                        mark  to  where the cursor
  786.                                        was.
  787.  
  788.  
  789.  
  790.                             July 1992                          12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. KSH(1)                                                     KSH(1)
  797.  
  798.  
  799.        forward-char  ^F                Moves the  cursor  forward
  800.                                        one position.
  801.        forward-word  ^[f               Moves  the  cursor forward
  802.                                        to the end of a word.
  803.        kill-line  KILL                 Deletes the  entire  input
  804.                                        line.
  805.        kill-to-eol  ^K                 Deletes the input from the
  806.                                        cursor to the end  of  the
  807.                                        line.
  808.        kill-region  ^W                 Deletes  the input between
  809.                                        the cursor and the mark.
  810.        list  ^[?                       Prints  a  sorted,  colum-
  811.                                        nated  list of hashed com-
  812.                                        mand names or  file  names
  813.                                        (if any) that can complete
  814.                                        the partial word  contain-
  815.                                        ing the cursor.  Directory
  816.                                        names have / postpended to
  817.                                        them,  and executable file
  818.                                        names are followed by *.
  819.        list-command  ^X?               Prints  a  sorted,  colum-
  820.                                        nated  list of hashed com-
  821.                                        mand names (if  any)  that
  822.                                        can  complete  the partial
  823.                                        word containing  the  cur-
  824.                                        sor.
  825.        list-file                       Prints  a  sorted,  colum-
  826.                                        nated list of  file  names
  827.                                        (if any) that can complete
  828.                                        the partial word  contain-
  829.                                        ing the cursor.  File type
  830.                                        indicators are  postpended
  831.                                        as  described  under  list
  832.                                        above.
  833.        newline  ^J and ^M              Causes the  current  input
  834.                                        line  to  be  processed by
  835.                                        the shell.   (The  current
  836.                                        cursor   position  may  be
  837.                                        anywhere on the line.)
  838.        newline-and-next  ^O            Causes the  current  input
  839.                                        line  to  be  processed by
  840.                                        the shell,  and  the  next
  841.                                        line  from history becomes
  842.                                        the current line.  This is
  843.                                        only  useful  after an up-
  844.                                        history or search-history.
  845.        no-op  QUIT                     Does nothing.
  846.        prefix-1  ^[                    Introduces  a  2-character
  847.                                        command sequence.
  848.        prefix-2  ^X                    Introduces  a  2-character
  849.                                        command sequence.
  850.        quote  ^^                       The following character is
  851.                                        taken   literally   rather
  852.                                        than    as    an   editing
  853.  
  854.  
  855.  
  856.                             July 1992                          13
  857.  
  858.  
  859.  
  860.  
  861.  
  862. KSH(1)                                                     KSH(1)
  863.  
  864.  
  865.                                        command.
  866.        redraw  ^L                      Reprints the prompt string
  867.                                        and   the   current  input
  868.                                        line.
  869.        search-character  ^]            Search forward in the cur-
  870.                                        rent  line  for  the  next
  871.                                        keyboard character.
  872.        search-history  ^R              Enter  incremental  search
  873.                                        mode.   The  internal his-
  874.                                        tory  list   is   searched
  875.                                        backwards   for   commands
  876.                                        matching  the  input.   An
  877.                                        initial   ``^''   in   the
  878.                                        search string anchors  the
  879.                                        search.   The  escape  key
  880.                                        will  leave  search  mode.
  881.                                        Other   commands  will  be
  882.                                        executed   after   leaving
  883.                                        search   mode  (unless  of
  884.                                        course they  are  prefixed
  885.                                        by  escape,  in which case
  886.                                        they will almost certainly
  887.                                        do the wrong thing).  Suc-
  888.                                        cessive     search-history
  889.                                        commands  continue search-
  890.                                        ing backward to  the  next
  891.                                        previous occurrence of the
  892.                                        pattern.    The    history
  893.                                        buffer   retains   only  a
  894.                                        finite  number  of  lines;
  895.                                        the  oldest  are discarded
  896.                                        as necessary.
  897.        set-mark-command  ^]<space>     Search forward in the cur-
  898.                                        rent  line  for  the  next
  899.                                        keyboard character.
  900.        stuff                           On systems supporting  it,
  901.                                        pushes the bound character
  902.                                        back  onto  the   terminal
  903.                                        input where it may receive
  904.                                        special processing by  the
  905.                                        terminal handler.
  906.        stuff-reset                     Acts   like   stuff,  then
  907.                                        aborts input the  same  as
  908.                                        an interrupt.
  909.        transpose-chars  ^T             Exchanges  the two charac-
  910.                                        ters on either side of the
  911.                                        cursor,  or the two previ-
  912.                                        ous characters if the cur-
  913.                                        sor is at end of line.
  914.        up-history  ^P                  Scrolls the history buffer
  915.                                        backward  one  line  (ear-
  916.                                        lier).
  917.        yank  ^Y                        Inserts  the most recently
  918.                                        killed text string at  the
  919.  
  920.  
  921.  
  922.                             July 1992                          14
  923.  
  924.  
  925.  
  926.  
  927.  
  928. KSH(1)                                                     KSH(1)
  929.  
  930.  
  931.                                        current cursor position.
  932.        yank-pop  ^[y                   Immediately  after a yank,
  933.                                        replaces the inserted text
  934.                                        string  with the next pre-
  935.                                        vious killed text  string.
  936.  
  937. FILES
  938.        ~/.profile
  939.        /etc/profile
  940.  
  941. SEE ALSO
  942.        Sh(1) on System V or Sun OS.
  943.  
  944.        UNIX  Shell  Programming,  Stephan  G.  Kochan, Patrick H.
  945.        Wood, Hayden.
  946.  
  947.        KornShell: Command and Programming Language (not yet  pub-
  948.        lished), Morris Bolsky and David Korn.
  949.  
  950. AUTHORS
  951.        Based on the public domain 7th edition Bourne shell.
  952.  
  953.        System  V  and Korn modifications by Eric Gisin, with con-
  954.        tributions by Ron Natalie, Arnold Robbins, Doug Gwyn, Erik
  955.        Baalbergen, AT&T (getopt(3)), John McMillan, Simon Gerraty
  956.        and Peter Collinson.
  957.  
  958. DIFFERENCES FROM AT&T VERSION
  959.        Csh-style alternations are implemented.   Variable  arrays
  960.        are not implemented.  Variable attributes other than inte-
  961.        ger are not implemented.  The ERR and EXIT traps  are  not
  962.        implemented  for  functions.  Alias expansion is inhibited
  963.        at the beginning of an alias definition in the  AT&T  ver-
  964.        sion.  Korn evaluates expressions differently [elaborate].
  965.  
  966. BUGS
  967.        Interactive shells may occasionally hang while waiting for
  968.        a job in the BSD version.
  969.  
  970.        The 8th bit is stripped in emacs mode.
  971.  
  972.        Quoting  double-quote (") characters inside back-quote (`)
  973.        inside double-quotes does not behave  properly.   Why  are
  974.        you doing this?
  975.  
  976.        The emacs mode can ``lose'' stty command done by the user.
  977.  
  978.        Unsetting special variables may cause unexpected  results.
  979.  
  980.        Functions  declared  as  having  local  scope  really have
  981.        global scope.
  982.  
  983.        Here documents inside functions do not work correctly.
  984.  
  985.  
  986.  
  987.  
  988.                             July 1992                          15
  989.  
  990.  
  991.  
  992.  
  993.  
  994. KSH(1)                                                     KSH(1)
  995.  
  996.  
  997.        Exit on error (set -e or set -o  errexit)  does  not  work
  998.        correctly.
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                             July 1992                          16
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. TEST(1)                                                   TEST(1)
  1061.  
  1062.  
  1063. NAME
  1064.        test - test condition (Korn and 8th edition)
  1065.  
  1066. SYNOPSIS
  1067.        test expression
  1068.        [ expression ]
  1069.  
  1070. DESCRIPTION
  1071.        Testevaluates  the  expression  and returns zero status if
  1072.        true, and non-zero status otherwise.  It is normally  used
  1073.        as the controlling command of the if and while statements.
  1074.  
  1075.        The following basic expressions are available.
  1076.  
  1077.               -r file                       file  exists  and  is
  1078.               readable
  1079.               -w  file                       file  exists  and is
  1080.               writable
  1081.               -x file                       file  exists  and  is
  1082.               executable
  1083.               -f  file                       file  is  a  regular
  1084.               file
  1085.               -d file                       file is a directory
  1086.               -c file                       file is  a  character
  1087.               special device
  1088.               -b  file                       file is a block spe-
  1089.               cial device
  1090.               -p file                       file is a named pipe
  1091.               -u file                       file mode has  setuid
  1092.               bit
  1093.               -g  file                       file mode has setgid
  1094.               bit
  1095.               -k file                       file mode has  sticky
  1096.               bit
  1097.               -s file                       file is not empty
  1098.               -L  file                       file  is  a symbolic
  1099.               link
  1100.               -S file                       file is a socket
  1101.               file -nt file                 first file  is  newer
  1102.               than second file
  1103.               file  -ot  file                 first file is older
  1104.               than second file
  1105.               file -ef  file                 first  file  is  the
  1106.               same file as second file
  1107.               -t  filedes                    file descriptor is a
  1108.               tty device
  1109.  
  1110.               string                        string is not null
  1111.               -z string                     string is null
  1112.               -n string                     string is not null
  1113.               string = string               strings are equal
  1114.               string != string              strings are not equal
  1115.  
  1116.               number -eq number             numbers compare equal
  1117.  
  1118.  
  1119.  
  1120. Korn shell                 January 1988                         1
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126. TEST(1)                                                   TEST(1)
  1127.  
  1128.  
  1129.               number -ne number             numbers  compare  not
  1130.               equal
  1131.               number   -ge   number             numbers   compare
  1132.               greater than or equal
  1133.               number   -gt   number             numbers   compare
  1134.               greater than
  1135.               number  -le number             numbers compare less
  1136.               than or equal
  1137.               number -lt number             numbers compare  less
  1138.               than
  1139.  
  1140.        The  above basic expressions may be combined with the fol-
  1141.        lowing operators.
  1142.  
  1143.               expr -o expr                  logical or
  1144.               expr -a expr                  logical and
  1145.               ! expr                        logical not
  1146.               ( expr )                      grouping
  1147.  
  1148. AUTHOR
  1149.        Erik Baalbergen. Modified by Arnold Robbins.
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. Korn shell                 January 1988                         2
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192. GETOPTS(1)                                             GETOPTS(1)
  1193.  
  1194.  
  1195. NAME
  1196.        getopts - parse command options
  1197.  
  1198. SYNOPSIS
  1199.        getopts optstring name [arg ...]
  1200.  
  1201. DESCRIPTION
  1202.        getopts is used by shell procedures  to  parse  positional
  1203.        parameters  and  to  check for legal options.  It supports
  1204.        all applicable rules of the command syntax  standard  (see
  1205.        Rules  3-10, intro(1)).  It should be used in place of the
  1206.        getopt(1) command.  (See the WARNING, below.)
  1207.  
  1208.        optstring must contain  the  option  letters  the  command
  1209.        using getopts will recognize; if a letter is followed by a
  1210.        colon, the option is expected to have  an  argument  which
  1211.        should be separated from it by white space.
  1212.  
  1213.        Each  time  it  is  invoked,  getopts  will place the next
  1214.        option in the shell variable name and  the  index  of  the
  1215.        next  argument  to  be  processed  in  the  shell variable
  1216.        OPTIND.  Whenever  the  shell  or  a  shell  procedure  is
  1217.        invoked, OPTIND is initialized to 1.
  1218.  
  1219.        When an option requires an option-argument, getopts places
  1220.        it in the shell variable OPTARG.
  1221.  
  1222.        If an illegal option is encountered, ? will be  placed  in
  1223.        name.
  1224.  
  1225.        When  the end of the options is encountered, getopts exits
  1226.        with a non-zero exit status.  The  special  option  ``--''
  1227.        may be used to delimit the end of the options.
  1228.  
  1229.        By  default, getopts parses the positional parameters.  If
  1230.        extra arguments (arg ...) are given on the getopts command
  1231.        line, getopts will parse them instead.
  1232.  
  1233.        So  all  new  commands  will  adhere to the command syntax
  1234.        standard described in intro(1), they should use getopts(1)
  1235.        or getopt(3C) to parse positional parameters and check for
  1236.        options that are legal for  that  command  (see  WARNINGS,
  1237.        below).
  1238.  
  1239. EXAMPLE
  1240.        The  following  fragment  of a shell program shows how one
  1241.        might process the arguments for a command  that  can  take
  1242.        the  options  a  or  b,  as  well  as  the option o, which
  1243.        requires an option-argument:
  1244.  
  1245.               while getopts abo: c
  1246.               do
  1247.                    case $c in
  1248.                    a|b)      FLAGS=$FLAGS$c;;
  1249.  
  1250.  
  1251.  
  1252. Korn shell                 January 1988                         1
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258. GETOPTS(1)                                             GETOPTS(1)
  1259.  
  1260.  
  1261.                    o)        OARG=$OPTARG;;
  1262.                    \?)       echo $USAGE 1>&2
  1263.                              exit 2;;
  1264.                    esac
  1265.               done
  1266.               shift OPTIND-1
  1267.  
  1268.        This code will accept any of the following as equivalent:
  1269.  
  1270.               cmd -a -b -o "xxx z yy" file
  1271.               cmd -a -b -o "xxx z yy" -- file
  1272.               cmd -ab -o "xxx z yy" file
  1273.               cmd -ab -o "xxx z yy" -- file
  1274.  
  1275. SEE ALSO
  1276.        intro(1), sh(1).
  1277.        getopt(3C) in the Programmer's Reference Manual.
  1278.        UNIX System V Release 3.0 Release Notes.
  1279.  
  1280. WARNING
  1281.        Although the following command syntax rule (see  intro(1))
  1282.        relaxations  are  permitted  under the current implementa-
  1283.        tion, they should not be used because they may not be sup-
  1284.        ported  in future releases of the system.  As in the EXAM-
  1285.        PLE section above, a and b are options, and the  option  o
  1286.        requires an option-argument:
  1287.  
  1288.               cmd -aboxxx file         (Rule 5 violation: options with
  1289.                         option-arguments must not be grouped with other options)
  1290.               cmd -ab -oxxx file       (Rule 6 violation: there must be
  1291.                         white space after an option that takes an option-argument)
  1292.  
  1293.        Changing the value of the shell variable OPTIND or parsing
  1294.        different  sets  of  arguments  may  lead  to   unexpected
  1295.        results.
  1296.  
  1297. DIAGNOSTICS
  1298.        getopts prints an error message on the standard error out-
  1299.        put when it encounters an option letter  not  included  in
  1300.        optstring.
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318. Korn shell                 January 1988                         2
  1319.  
  1320.  
  1321.